package com.sky.mapper;

import com.sky.entity.SetmealDish;
import com.sky.vo.DishItemVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * PROJECT_NAME: sky-take-out
 * NAME: SetmealMapper
 * DESCRIPTION : B端-套餐菜品信息持久层接口
 *
 * @author zhang
 * @date 2023/05/18
 */
@Mapper
public interface SetmealDishMapper {


    /**
     * 查询菜品是否被套餐关联
     *
     * @param ids 要判断菜品的id集合
     * @return 有关联关系数据的条数
     */
    Long selectCountByDishIds(@Param("ids") List<Long> ids);


    /**
     * 添加套餐菜品信息
     * @param setmealDishList
     */
    void insertSetmealDish(@Param("setmealDishList") List<SetmealDish> setmealDishList);

    /**
     * 根据id删除套餐菜品关联表中的内容
     * @param setmealIds
     */
    void deleteSetmealDishById(@Param("setmealIds") List<Long> setmealIds);

    /**
     * 根据套餐id查询关联了套餐的菜品信息
     * @param id 套餐id
     */
    List<SetmealDish> selectsetMealDishById(@Param("id") Long id);

    /**
     * 删除套餐菜品关联表中的数据
     * @param id 基于套餐id删除
     */
    void batchDeleteSetmealDish(@Param("id") Long id);

    /**
     * 根据套餐Id查询包含菜品信息
     *
     * @param setmealId 套餐Id
     * @return 全局通用返回信息Bean(套餐中菜品的基本信息)
     */
    List<DishItemVO> selectSetmealDishBySetmealId(Long setmealId);
}
